home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xarchie-2.0.9 / get_pauth.c < prev    next >
C/C++ Source or Header  |  1995-06-18  |  2KB  |  86 lines

  1. /*
  2.  * Copyright (c) 1989, 1990 by the University of Washington
  3.  *
  4.  * For copying and distribution information, please see the file
  5.  * <copyright.h>.
  6.  *
  7.  * gf: xarchie v2.0 - Sync with archie v1.4.1 - changes marked with "gf"
  8.  */
  9.  
  10. #include <copyright.h>
  11. #include <stdio.h>
  12. #include "config.h"                /* gf */
  13. #include "stringdefs.h"                /* gf */
  14.  
  15. #ifndef VMS
  16. # if defined(MSDOS) && !defined(OS2) && !defined(PCNFS)
  17. #  ifndef CUTCP
  18. #   include <rwconf.h>
  19. #  endif
  20. # else
  21. #  include <pwd.h>
  22. # endif
  23. #else
  24. # include <jpidef.h>
  25. # include <vms.h>
  26. #endif
  27.  
  28. #include <pcompat.h>
  29. #include <pauthent.h>
  30.  
  31. /*gf*/
  32. /*ARGSUSED*/
  33. PAUTH
  34. get_pauth(type)
  35.     int        type;
  36.     {
  37.     static PAUTH_ST   no_auth_st;
  38.     static PAUTH          no_auth = NULL;
  39. #if !defined(VMS) && !defined(MSDOS) || defined(OS2) || defined(PCNFS)
  40.     struct passwd *whoiampw;
  41. #else
  42.     char username[13];
  43.     unsigned short usernamelen;
  44.     struct {
  45.         unsigned short buflen;
  46.         unsigned short itmcod;
  47.         char *bufadr;
  48.         unsigned short *retlenadr;
  49.         unsigned long null;
  50.     } jpi_itemlist;
  51. #endif
  52.  
  53.     if(no_auth == NULL) {
  54.         no_auth = &no_auth_st;
  55.         strcpy(no_auth->auth_type,"UNAUTHENTICATED");
  56.  
  57.         /* find out who we are */
  58. #ifndef VMS
  59. #if defined(MSDOS) && !defined(OS2) && !defined(PCNFS)
  60. #ifndef CUTCP
  61.         if (!getconf("general", "user", no_auth->authenticator, 250)
  62.         || (strlen (no_auth->authenticator) == 0))
  63. #endif
  64.           strcpy(no_auth->authenticator,"nobody");
  65. #else /* not MSDOS */
  66.         DISABLE_PFS(whoiampw = getpwuid(getuid()));
  67.         if (whoiampw == 0) strcpy(no_auth->authenticator,"nobody");
  68.         else strcpy(no_auth->authenticator, whoiampw->pw_name);
  69. #endif /* not MSDOS */
  70. #else
  71.         jpi_itemlist.buflen = sizeof(username);
  72.         jpi_itemlist.itmcod = JPI$_USERNAME;
  73.         jpi_itemlist.bufadr = &username;
  74.         jpi_itemlist.retlenadr = &usernamelen;
  75.         jpi_itemlist.null = 0;
  76.         if (SYS$GETJPI(0, 0, 0, &jpi_itemlist, 0, 0, 0) & 0x1)
  77.         {
  78.         username[usernamelen] = 0;
  79.         strcpy(no_auth->authenticator, username);
  80.         } else
  81.         strcpy(no_auth->authenticator, "nobody");
  82. #endif
  83.     }
  84.     return(no_auth);
  85.     }
  86.